package com.atguigu.exercise.exer5;

interface Inter{//接口
    void show();
}
class Outer{
    public static Inter method(){
            /*class Chai implements Inter{
                @Override
                public void show() {
                    System.out.println("helloworld");
                }
            }

            return new Chai();*///上面是内部类有名字

        return new Inter() {
            @Override
            public void show() {
                System.out.println("helloworld");
            }
        };//内部类没有名字
    }
}

class OuterDemo {
    public static void main(String[] args) {
        Outer.method().show();
        /*
        (1)Outer.method()想要不报错，意味着Outer类有一个method方法，且是static的，因为它用类名.
        (2)如果希望 Outer.method()后面能继续.show() ==> 意味着 method的返回值类型是 Inter类型
        （3）要保证Outer类的method方法不报错，method方法有返回值，就必须return 结果;
        这里的结果必须是Inter类型的对象。但是接口不能直接创建对象，只能创建Inter的实现类对象
        （4）实现类实现Inter接口，必须要重写接口的抽象方法
         */
    }
}
